import useDictStore from '@/store/modules/dict'
import { getDicts,getEDicts } from '@/api/system/dict/data'

/**
 * 获取字典数据
 */
export function useDict(...args) {
  return useDictCom(getDicts,...args)
}
/**
 * 获取字典数据
 */
export function useEDict(...args) {
  return useDictCom(getEDicts,...args)
}

function useDictCom(getDictMethod,...args) {
  const res = ref({});
  return (() => {
    args.forEach((dictType, index) => {
      res.value[dictType] = [];
      const dicts = useDictStore().getDict(dictType);
      if (dicts) {
        res.value[dictType] = dicts;
      } else {
        getDictMethod(dictType).then(resp => {
          res.value[dictType] = resp.data.map(p => ({ label: p.label, value: p.code, raw: p}))
          useDictStore().setDict(dictType, res.value[dictType]);
        })
      }
    })
    return toRefs(res.value);
  })()
}
